#!/usr/bin/env python
# -*- coding: latin-1 -*-
# -*- coding: cp1252 -*-

# Þessi klasi er þegar til í Python (eins og við mætti búast): http://docs.python.org/2/library/fractions.html
# class AlmenntBrot(Fraction) væri því lausn sem virkaði en má væntanlega ekki

# Ef þið eruð að pæla í hvað __fall__ föllin gera (og hvaða fleiri eru til):
# http://www.rafekettler.com/magicmethods.html

class AlmenntBrot:
	def __init__(self, teljari=1, nefnari=1):
		self.iNefnari = nefnari
		self.iTeljari = teljari
		self.stytta()
		
	def skrifaUt(self):
		self.stytta()	# Just in case, forritið gæti hafa stillt iNefnari/teljari sjálft
		print(str(self.iTeljari) + "/" + str(self.iNefnari))
		
	def __add__(self, other):
		teljari = self.iNefnari*other.iTeljari + self.iTeljari*other.iNefnari
		nefnari = self.iNefnari*other.iNefnari
		c = AlmenntBrot(teljari, nefnari)
		c.stytta()
		return c
		
	def __sub__(self, other):
		teljari = self.iTeljari*other.iNefnari - self.iNefnari*other.iTeljari
		nefnari = self.iNefnari*other.iNefnari
		c = AlmenntBrot(teljari, nefnari)
		c.stytta()
		return c
		
	def __mul__(self, other):
		teljari = self.iTeljari*other.iTeljari
		nefnari = self.iNefnari*other.iNefnari
		c = AlmenntBrot(teljari, nefnari)
		c.stytta()
		return c
		
	def __truediv__(self, other):		# Hef satt að segja ekki hugmynd af hverju það er truediv en ekki div og nenni ekki að finna ástæðuna (div er samt til)
		teljari = self.iTeljari*other.iNefnari
		nefnari = self.iNefnari*other.iTeljari
		c = AlmenntBrot(teljari, nefnari)
		c.stytta()
		return c
		
	def stytta(self):
		# Hér má finna sameiginlega þætti og stytta en ég nenni ekki að implementa það atm
		# Verkefni eftirlátið lesanda
		return

a = AlmenntBrot(5, 6)
a.skrifaUt()
b = AlmenntBrot(3, 4)
b.skrifaUt()
a = a/b
a.skrifaUt()
